Method for denominating move groups of applications

ABSTRACT

A method of staging a group of applications of a network is provided and includes the step of developing a reference base of applications via monitoring traffic flow between devices of the network on which applications are executed or accessing information about such applications. The method further includes the step of classifying each such selected application as a member of one of the classification sub-sets with regard to applications of the reference application base. Additionally, the method includes the step of accessing information about the classification sub-sets of those respective applications executed on each of a target group of devices to thereby form an application classification glossary associated with the device.

BACKGROUND OF THE INVENTION

US Published Patent Application No. 2011/0246376 to Devakondra et alpoints out that network data processing systems are used for a varietyof different purposes and come in a number of different forms. Severaltypes of network data processing systems are commonly used by companiesand other organizations and may include, for example, local areanetworks, wide area networks, virtual private networks, and othersuitable types of networks.

In addition to such networks that may be maintained by the networkoperator itself, cloud services are available and the users of this typeof network data processing systems neither own nor manage the physicalinfrastructure. In this manner, users may avoid capital expenditures,support costs, maintenance costs, labor costs, and other costsassociated with more traditional types of networks. With cloud-basednetwork environments, users consume resources as a service and typicallypay based on the use of those resources. By turning to cloud-basedcomputing resources, companies and organizations can avoid capitalexpenditures, such as costs for hardware, software, informationtechnology services, and other associated costs.

Clouds may include, for exam, a public cloud, a private could, and ahybrid cloud. A public cloud is a network environment in which usersaccess computing resources over a network, such as the Internet. Aprivate cloud is an internal loud in which resources are accessed onprivate networks, such as an intranet. A private cloud also may provideadditional separation from other users. A private cloud may includefireballs and other devices to provide for increased security andseparation.

Organizations that employ more traditional types of network dataprocessing systems may contemplate whether to change over from theirmore traditional network environment to a cloud network environment. Inview of the fact that the particular cloud services offered by eachcloud service provider or vendor will have different features, benefits,service operating requirements, and costs, it would be advantageous fora network operator to have access to tools that can help guide adecision to migrate computing tasks to a cloud. Moreover, it would beadvantageous if such tools for a guiding a network operator could equipthe network operator to have an accurate picture of the computingresources in its own network that will or can be re paced by the cloudcomputing resources. Furthermore, network operators can make betterinformed decisions about purchasing cloud services if they can getpricing information about potential cloud service providers and,especially, pricing information about the scope of computing resourcesthat tasks could be taken over in a cloud service arrangement.

Computer networks consist of a number of computers in communication witheach other. Often, networks are complicated or are built on an as-neededbasis. For example, in a school setting, computers may generally beadded when they can be afforded and joined into the network one by one.With larger organizations the complexity of the network and thecommunication between the devices within them can be even greater.Further, since the popularity of the internet, networks are no longerrestricted to a single building or organization and instead thecomputers in the network can be spaced all over the world and acrossorganizations. Since the construction of different parts of the networkwas by different people in many instances no one person knows theoverall infrastructure of the network and how the elements are connectedtogether. Even without the addition of new computers it is quite commonfor the implementation of real systems to be changed many times duringits building operation (server swapped maintenance repair, etc).

The arrangement of devices in the network and how they communicate witheach other is sometimes referred to as network topology. The term“physical topology” can be used to refer to the arrangement of hardwareand cabling but generally it is at least as important to know the mannerof communications and the paths of the signals between the computers(sometimes referred to as a logical or signal topology). There are manyapplications and circumstances for which it is beneficial to understandthe network and how computers are connected to each other, to acquire amapping of the topology.

It is known to attempt to map and then monitor then topology of networksusing various systems and methods and one known method is to install asoftware agent on each computer in the network. Each agent then searchesthe file system of the computer it is hosted on to determine whatsoftware is running on it. Based on what software is running it attemptsto deduce whether it is a client (because it has found software to beused by the end user), a server (by having hosting software), or afirewall, etc. Since applications and software that may be loaded on thecomputer come in many different forms which change frequently, having anagent that can successfully identify all relevant software is difficult,and such agents must constantly be updated to accommodate new software.

Another approach is to attempt to establish data paths by using softwaresuch as ‘trace route’. Trace route is a computer networking tool that isused to determine the route taken by tickets across an IP network. Traceroute and similar programs work by sending successive batch of packetsover the network and calculation the route from this. Trace route relieson ICMP (Internet Control Message Protocol). A number of problems areassociated with this approach, such as the problem that it relies on newdata being sent through the system, thereby changing the trafficflowing. This in itself may not be a problem where there is sufficientbandwidth, but due to security concerns it is relatively common forfirewalls to identify such foreign packets and to stop them fromproceeding any further into the network.

SUMMARY OF THE INVENTION

One object of the present invention is to provide a method of staging amove group of applications of a network. The method includes the step ofdeveloping a reference base of applications via monitoring traffic flowbetween devices of the network on which applications are executed oraccessing information about such applications. The method furtherincludes the step of classifying each such selected application as amember of one of the classification sub-sets with regard to applicationsof the reference application base. Additionally, the method includes thestep of accessing information about the classification sub-sets of thoserespective applications executed on each of a target group of devices tothereby form an application classification glossary associated with thedevice, wherein, within the application glossary associated with eachdevice, each application belonging to a respective classificationsub-set is grouped together with all applications that both belong tothat same classification sub-set and are hosted on the device. Themethod additionally further includes the step of denominating a movegroup of applications by: (a) deeming that all respective applicationssharing a common membership in a respective classification sub-set areto be considered as a move group or (b) determining that certainapplications commonly classed in a respective classification sub-set arealso additionally members of a class of applications sharing a commonproperty and deeming that such certain applications are to be consideredas a move group.

Another object of the present invention is to provide computer readablemedium containing computer executable instructions which when executedon one or more computers of a network causes the respective computer orcomputers to perform the method of staging a move group of applicationsof a network.

A further object of the present invention is to provide a computer basedapparatus operable to provide an evaluation of certain characteristicsof a network, the apparatus comprising a processor, a memory, and aninput element operable to be in communication with a plurality ofcomputers of a network that is to be evaluated and the computer basedapparatus being operable to perform the method of staging a move groupof applications of a network,

Other aspects, embodiments and advantages of the present invention willbecome apparent from the following detailed description which, taken inconjunction with the accompanying drawings, illustrate the principles ofthe invention by way of example.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing and other objects, features and advantages of the presentinvention, as well as the invention itself, will be more fullyunderstood from the following description of various embodiments whenread together with the accompanying drawings, in which.

FIG. 1 is a schematic view of a portion of a network;

FIG. 2 is an enlarged schematic view of a software program executable toimplement the method of the present invention;

FIG. 3 is a schematic view of an exemplary implementation of the movegroup identifier method of the present invention; and

FIG. 4 is a graphical representation of an exemplary display format fordisplaying a list of move group choices to a user.

DETAILED DESCRIPTION OF AN EMBODIMENT OF THE INVENTION

Reference is now had to FIG. 1, which is a schematic view of a portionof a network 700. The network 700 comprises a plurality of devices, somein the form of computers, and the respective computers that areschematically shown in FIG. 1 form a part of the network 700 and areoperatively connected to other computers and devices of the network (notshown). In this example five devices 702, 704, 708, 708 and 710 areillustrated. Each device may be a web server, a terminal connectedsolely to a web server, or other known device typically comprised in anetwork. Solely for the sake of illustration, the five devices 702, 704,708, 708 and 710 are similarly equipped and, in this regard, as is shownwith respect to the device 710, each of the devices comprises aprocessor 712, a par of network interfaces 714, 716, and a softwareprogram 720 executable to implement the move group identifier method ofthe present invention with respect to the network 700.

The pair of network interfaces 714, 716 are connected to an Ethernetconnection 750 and a Wi-Fi connection 752, respectively. The Ethernetand Wi-Fi connections therefore enable the device 710 shown to connectto one or more of the other devices 702, 704, 706, and 705 as well asother devices in the network. A remote processor which may be hosted onanother computer of the network 700, for example, or which may be a VMprocessor, may be operatively connected to one or more of the devices702, 704, 706, 708 and 710. This remote processor (not shown) maypartially or fully execute the software program 720 hosted on the device710.

The software program 720 includes four modules 722, 724, 726, and 728and a database 730. As seen in more detail in FIG. 2, which is anenlarged schematic view of the software program 720, the module 722provides a discovery configuration module capability, the module 724provides a discovery conductor module capability, the module 726provides a communication interface capability, and the module 728provides a process management capability.

The software program 720 is executed to configure the five devices 702,704. 706, 708 and 710 to enable discovery of network traffic transmittedor received via their connected interfaces 714, 716. The discovery ofnetwork traffic is preferably accomplished via a collection of workloaddata, applications, services, performances as an initial step. Thiscollection effort can make reference to data hosted on a memory within adevice, wherein such memory can mean random access memory or any form ofdata storage device such as a hard drive or flash memory. The data canbe comprised in a database that is an in-memory or file supportedrelational database system.

The data can be already organized in a form, for example, such as atraffic flow table or a network interface table. Such a traffic flowtable can include IP addresses and port specific network trafficinformation. The network interface table may include vendordescriptions, interface names, MAC (Media Access Control or Ethernethardware addresses), and media types. The communication interface module726 configures the device 710 to connect to the remote processor toupload reports. The interface of this communication interface module 726can be a web service or be provided by e-mailing a file report to theremote processor which will typically be the main server. Reference isnow had to FIG. 2 and to FIG. 3, which is a schematic view. of anexemplary implementation of the move group identifier method of thepresent invention. As seen in FIG. 3 the move group identifier method ofthe present invention, hereinafter referred to as the move groupidentifier method 810, comprises several steps that, when performed withrespect to a network, provide a user with a move group of applicationshosted on the network. The term “move group of applications” is directedto the concept of providing a fully automatic approach, or at least withan approach with some automated aspects, for identifying a suggested ordesired grouping of applications currently hosted on a network to auser, whereupon the user can more easily consider or plan a migration ofat least some of the network's tasks to a different network such as, forexample, a migration of network tasks to an external network in the formof a private or public cloud network.

The exemplary implementation of the move group identifier method 810shown in FIG. 3 is conducted on the devices 702-710 of the portion ofthe network 700 shown in FIG. 1 and the implementation of the move groupidentifier method 810 is managed by the software program 720. The movegroup identifier method 810 includes several steps that areautomatically performed once an initiation command is provided by a userand the method ultimately yields a suggested or desired grouping ofapplications currently hosted on the network 700 which can be displayed,for example, in a on-screen report to the user. Moreover, the move groupidentifier method 810 includes the flexibility that a user can command are-execution of the method with a change in the filters or a change in aprocess variable, so that a different suggested or desired grouping ofapplications currently hosted on the network 700 will be displayed tothe user. It can be understood that this manner of iteratively changingthe inputs that are processed via the move croup identifier method 810beneficially provides a user with a range of different perspectives inconsidering network migration scenarios. For example, a user cancustomize implementation of the move group identifier method 810 toprovide information about a group of applications hosted at a commonlocation or to provide information about a group of applications thathandle a common task (i.e., anti-virus applications), whereupon the usercan strategically plan a migration to avoid excess redundancies of suchapplications.

The move group identifier method 810 includes a reference basedevelopment step 810 for developing a reference base of applications.This reference base of applications is developed via monitoring of thetraffic flow between the devices of the network on which applicationsare executed or accessing information about such applications.Accordingly, the discovery configuration module 722 of the softwareprogram 720 configures the discovery conductor module 724 to monitortraffic flow between the devices 702-710 message traffic transmitted orreceived via applications hosted on these devices) as well as trafficflow between these devices and other devices of the network 700.Additionally or alternatively, the discovery configuration module 722 ofthe software program 720 configures the discovery conductor module 724to access information about these applications via reference, forexample, to network statistics stored on a memory capacity that is partof the network 700. This reference base development step 810 results inthe creation of a reference base of applications that is stored on thememory 730 of the network 700. The applications in the reference base ofapplications are representatively shown as applications APL-AA, APL-BB,APL-CC, APL-DD, and APL-EE.

The move group identifier method 810 also includes a classification step820 that is performed by the process director module 728 of the softwareprogram 720. The process director module 728 accesses the memory 730and, with regard to applications of the reference application base, theprocess director module 728 classifies each such selected application asa member of one of a collection of classification sub-sets. Aclassification sub-set is to be understood as set of applicationssharing a common property such as, for example, the common property thata of the applications are Windows-based applications or Linux-basedapplications. The process director module 728 is configured toautomatically allocate each application of the reference applicationbase to a respective classification sub-set based upon pre-set criteriasuch as, for example, a pre-set criteria to commonly assign to a singleclassification sub-set all those applications having a Windows-basedoperating system (as noted during the reference base development step810). Additionally or alternatively, the allocations made by the processdirector module 728 can be supplemented or adjusted via the interventionof a classification oversight feature. For example, the process directormodule 723 can be supplemented or adjusted via the intervention of aclassification oversight feature wherein the user or an external entitythat is implementing the move group identifier method 810 can adjust oroverride the allocation choices suggested by the process director module728.

The classification sub-sets are schematically shown in FIG. 3 asclassification sub-sets 822A-E. Thus, it can be seen that theapplications in the reference base of applications, representativelyshown as applications APL-AA, APL-BB, APL-CC, APL-DD, and APL-EE, areeach a member of a respective one of the classification sub-sets 322A-E.

The move group identifier method 810 further includes an informationaccessing step 830 that is performed by the process director module 728of the software program 720. The process director module 728 accessesthe memory 730 and, with regard to each individual device of a targetgroup of devices of the network—namely, the five devices 702, 704, 706,708 and 710 of the network 700, the process director module 728 accessesinformation about the classification sub-sets of those respectiveapplications executed on the respective device to thereby form anapplication glossary associated with that respective device.Accordingly, the process director module 728 of the software program 720accesses information about the devices 702-710 and forms thecorresponding set of application glossaries 902-910, schematically shownas residing in the storage 730. Within the application glossaryassociated with each device, each application belonging to a respectiveclassification sub-set is grouped together with all applications thatboth belong to that same classification sub-set and are hosted on thedevice. Thus, for example, the application classification glossary 902,which is associated with the device 702, may list several applicationsall belonging to the respective classification sub-set comprised ofanti-virus applications and may additionally list an applicationbelonging to the respective classification sub-set comprised of ActiveDirectory applications.

The move group identifier method 810 additionally includes adenominating step 340 that is performed by the process director module728 of the software program 720. The process director module 728accesses the memory 730 and denominates a move group of applications.The denominated move group of applications is a suggested or desiredgrouping of applications currently hosted on the network and thisinformation is communicated to the user, whereupon the user can moreeasily consider or plan a migration of at least some of the network'stasks to a different network such as, for example, a migration ofnetwork tasks to an external network in the form of a private or publiccloud network.

in accordance with the denominating step 840, the process directormodule 728 denominates a move group of applications by: (a) deeming thatall respective applications sharing a common membership in a respectiveclassification sub-set are to be considered as a move group or (b)determining that certain applications commonly classed in a respectiveclassification sub-set are also additionally members of a class ofapplications sharing a common property and deeming that such certainapplications are to be considered as a move group. Thus, for example, ifthe process director module 728 is directed to denominate a move groupof applications under option (a) of the denominating step 840 by deemingthat all respective applications sharing a common membership in arespective classification sub-set are to be considered as a move group,the process director module 728 can access the memory 730 and denominatea move group of applications that is comprised of all of theapplications hosted on the five devices 702, 704, 706, 708 and 710 ofthe network 700—this information is namely the information listed in theapplication glossaries 902-910.

Additionally or alternatively, a denomination of a move group ofapplications made by the process director module 728 can be supplementedor adjusted via the intervention of a classification oversight feature.For example, the process director module 728 can supplemented oradjusted via the intervention of a classification oversight featurewherein the user or an external entity that is implementing the movegroup identifier method 810 can adjust or override the move groupchoices suggested by the process director module 728.

On the other hand, if the process director module 728 is directed todenominate a move group of applications under option (b) of thedenominating step 840 by determining that certain applications commonlyclassed in a respective classification sub-set are also additionallymembers of a class of applications sharing a common property and deemingthat such certain applications are to be considered as a move group, theprocess director module 728 can access the memory 730 and identify suchapplications that satisfy both criteria. Reference is had to FIG. 4,which is a graphical representation of an exemplary display format fordisplaying a list of move group choices to a user. A display screenimage 610 shows a total of three rows sub-headed “Sharepoint2”“Amsterdam”, and “Lync” and each sub-headed row comprises one or morelistings of applications, with information about each application beingprovided under columns denominated as Name, IP Address, Device Type,Operating System, Number of Hard Drives, and Number of Networkinterfaces. With particular reference to the manner in which theinformation in the row sub-headed “Amsterdam” has been yielded as aresult of execution of the denominating step 840, it can be seen thatthe process director module 728 has been tasked to identify all thoseapplications that are commonly classed in the respective classificationsub-set that includes all applications that are Linux-based applications(see, e.g., the information listed in the row sub-headed “Amsterdam”under the column “Operating System”) and, additionally, the processdirector module 728 has been tasked to identify all those applicationsare also additionally members of a class of applications sharing acommon property—namely, identify all those applications are alsoadditionally members of the class of applications that are hosted ondevices located in Amsterdam.

While the present invention has been depicted, described, and is definedby reference to particular embodiments of the invention, such referencesdo not imply a limitation on the invention, and no such limitation is tobe inferred. The invention is capable of considerable modification,alteration, and equivalents in form and function, as will occur to thoseordinarily skilled in the pertinent arts. The depicted and describedembodiments are examples only, and are not exhaustive of the scope ofthe invention,

Additionally, the above-discussed embodiments include software modulesthat perform certain tasks. The software modules discussed herein mayinclude script, batch, or other executable files. The software modulesmay be stored on a machine-readable or computer-readable storage mediumsuch as a disk drive. Storage devices used for storing software modulesin accordance with an embodiment of the invention may be magnetic floppydisks, hard disks, or optical discs such as CD-ROMs or for example. Astorage device used for storing firmware or hardware modules inaccordance with an embodiment of the invention may also include asemiconductor-based memory, which may be permanently, removably orremotely coupled to a microprocessor/memory system. Thus, the modulesmay be stored within a computer system memory to configure the computersystem to perform the functions of the module. Other new and varioustypes of computer-readable storage media may be used to store themodules discussed herein. Additionally, those skilled in the art willrecognize that the separation of functionality into modules is forillustrative purposes. Alternative embodiments may merge thefunctionality of multiple modules into a single module or may impose analternate decomposition of functionality of modules. For example, asoftware module for calling sub-modules may be decomposed so that eachsub-module performs its function and passes control directly to anothersub-module.

We claim:
 1. A method of staging a move group of applications of anetwork, comprising: developing a reference base of applications by atleast one of monitoring traffic flow between devices of the network andaccessing information about the applications, wherein the informationcomprises network statistics; with regard to applications of thereference base of applications, classifying each such application as amember of one or more classification sub-sets; with regard to eachdevice of a target group of the devices of the network, accessinginformation about the one or more classification sub-sets of thoserespective applications executed on the device to form an applicationclassification glossary associated with the device, wherein, within theapplication glossary associated with each device, each applicationbelonging to a respective classification sub-set is grouped togetherwith all applications that both belong to that same classificationsub-set and are hosted on the device; and denominating a move group ofapplications by identifying as a move group at least one of allapplications sharing a common membership in a respective classificationsub-set and one or more of the applications sharing a common property.2.-6. (canceled)